package fichier;

import java.sql.ResultSet;
import java.sql.SQLException;
/**
 * La classe User g�re la connexion, 
 * elle contient les informations sur l'etat de connexion du user 
 * et sur son statut.
 * @author Rinca
 *
 */
public class User {
	/**
	 * L'etat permet de savoir si ce User est conn�ct� ou non.
	 */
	private boolean etat;
	/**
	 * Le statut permet de connaitre les droits des differents User.
	 */
	private int statut;
	
	private int id;
	
	/**
	 * Le User par default.
	 */
	public static final int USER = 3;
	/**
	 * Le SuperUser possede les droits du User. 
	 * De plus il peut modifier et supprimer des modeles.
	 */
	public static final int SUPERUSER = 2;
	/**
	 * L'Admin possede les droits du SuperUser.
	 * De plus il peut ajouter des modeles.
	 */
	public static final int ADMIN = 1;
	
	/**
	 * Cr�� un User, initialise etat � false et statut � USER.
	 */
	public User() {
		// TODO Auto-generated constructor stub
		this.etat = false;
		this.statut = User.USER;
		this.id = -1;
	}

	/**
	 * L'etat permet de savoir si ce User est conn�ct� ou non.
	 * @return etat
	 */
	public boolean getEtat() {
		return etat;
	}
	/**
	 * Le statut permet de connaitre les droits des differents User.
	 * @return statut
	 */
	public int getStatut() {
		return statut;
	}
	
	public int getID(){
		return id;
	}
	/**
	 * Permet d'effectuer une authentification(connexion).
	 * Met le statut a jour, ainsi que l'etat si la combinaison login/password est correct.
	 * @param login
	 * @param password
	 */
	public void connexion(String password){
		//creation de la requette
		
		SelectData.REQUETE = "Select * from users where mdp_user='"+password+"'";
		ResultSet result = SelectData.startSelect();
		
		//recup�ration des donn�es
		String mdp = "";
		try {
			while(result.next()){
				mdp = result.getString("mdp_user");
				this.statut = result.getInt("id_user");
				this.id = result.getInt("id_user");
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		//mise a jour du statut et de l'etat
		this.etat = false;
		if(mdp.equals("")){
			this.etat = false;
		}
		else if(mdp.equals(password)){
			this.etat = true;
		}
	}
	/**
	 * Met l'etat � false.
	 */
	public void deconnexion(){
		this.etat = false;
	}
}